package com.medusa.gruul.payment.service.model.dto;

import com.medusa.gruul.common.model.enums.PayType;
import com.medusa.gruul.common.system.model.model.Platform;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.util.List;

/**
 * 商户渠道配置DTO
 *
 * @author xiaoq
 * @ Description 支付商户渠道配置DTO
 * @date 2022-07-13 09:49
 */
@Data
public class MerchantDetailsDTO {

    /**
     * 列表id
     */
    private String detailsId;

    /**
     * 支付渠道枚举
     */
    @NotNull
    private PayType payType;

    /**
     * 应用appid
     */
    @NotBlank
    private String appid;

    /**
     * 应用私钥
     */
    @NotBlank
    private String keyPrivate;

    /**
     * 支付宝公钥
     */
    @NotBlank(groups = Ali.class)
    private String keyPublic;
    /**
     * 商户号
     */
    @NotBlank(groups = Wechat.class)
    private String mchId;
    /**
     * 支付证书
     */
    @NotBlank(groups = Wechat.class)
    private String keyCert;

    /**
     * 主体名称
     */
    private String subjectName;

    /**
     * APP平台类型
     */
    private List<Platform> platforms;

    public interface Wechat {
    }

    public interface Ali {
    }
}
